<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>

  <body>
    <script>
      var data = [
        {
          id: 1,
          name: "家电",
          goods: [
            {
              id: 11,
              gname: "冰箱",
              goods: [
                {
                  id: 111,
                  gname: "海尔",
                },
                {
                  id: 112,
                  gname: "美的",
                },
              ],
            },
            {
              id: 12,
              gname: "洗衣机",
            },
          ],
        },
        {
          id: 2,
          name: "服饰",
        },
      ];

      function setID(arr, id) {
        var star = {};
        arr.forEach(function (value) {
          if (value.id === id) {
            star = value;
          } else if (value.goods && value.goods.length > 0) {
            star = setID(value.goods, id);
          }
        });
        return star;
      }
      console.log(setID(data, 1));
      console.log(setID(data, 2));
      console.log(setID(data, 111));
      console.log(setID(data, 112));
      console.log(setID(data, 11));
      console.log(setID(data, 12));

      // 1. 第一步遍历data这个数组
      // function setData(son, id) {
      //   son.forEach(function (value) {
      //     if (value.id === id) {
      //       console.log(value);
      //     } else if (value.goods && value.goods.length > 0) {
      //       setData(value.goods, id);
      //     }
      //   });
      // }
      // setData(data, 1);
      // setData(data, 2);
      // setData(data, 12);
      // setData(data, 111);
      // setData(data, 112);

      // 我们想要做输入id号,就可以返回的数据对象
      // 1. 利用 forEach 去遍历里面的每一个对象
      // function getID(json, id) {
      //     var o = {};
      //     json.forEach(function(item) {
      //         // console.log(item); // 2个数组元素
      //         if (item.id == id) {
      //             // console.log(item);
      //             o = item;
      //             // 2. 我们想要得里层的数据 11 12 可以利用递归函数
      //             // 里面应该有goods这个数组并且数组的长度不为 0
      //         } else if (item.goods && item.goods.length > 0) {
      //             o = getID(item.goods, id);
      //         }

      //     });
      //     return o;
      // }
      // console.log(getID(data, 1));
      // console.log(getID(data, 2));
      // console.log(getID(data, 11));
      // console.log(getID(data, 12));
      // console.log(getID(data, 111));
    </script>
  </body>
</html>
